Шаг 64 - ITypeLib::GetTypeComp.

Позволяет компилятору-клиенту выполнять компоновку с типами, переменными, константами и глобальными функциями.

HRESULT GetTypeComp
( 
ITypeComp FAR* FAR*ppTComp
);

Параметр
ррТСотр
Указывает на указатель на экземпляр ITypeComp для данной ITypeLib. Компилятор-клиент может использовать методы ITypeComp для компоновки с типами из ITypeLib, а также с определенными в этой библиотеке глобальными функциями, переменными и константами.

Коды возврата
Из возвращенного HRESULT получают один из следующих кодов возврата:
S_OK Успех.
E_OUTOFMEMORY He хватает памяти.
E_INVALIDARG Один или несколько аргументов неверны.
TYPE_E_IOERROR Функция не может выполнить запись в файл.
TYPE_E_INVDATAREAD Функция не может читать из файла.
TYPE_E_UNSUPFORMAT Библиотека типа имеет старый формат.
TYPE_E_INVALIDSTATE Не удается открыть библиотеку типа.
TYPE E WRONGTYPEKIND Несовпадение типов.

Комментарии
Функция Bind возвращенного TypeComp выполняет компоновку с глобальными функциями, переменными, константами, значениями перечислимых типов и членами коклассов. Кроме того, функция Bind осуществляет компоновку с именами типов TKIND_MODULE, TKIND_ENUM и TKIND_COCLASS. Эти имена скрывают любые глобальные имена, определяемые информацией о типе. Компоновку с членами типов TKIND_ENUM, TKIND_MODULE и TKIND_COCLASS, помеченных как объекты Application, ITуреСоmр может выполнять непосредственно, без указания имени модуля.
ITypeComp::Bind и ITypeComp::BindType обрабатывают только неквалифицированные имена. ITypeLib::GetTypeComp возвращает указатель на интерфейс ITypeComp, который используется затем для компоновки с глобальными элементами библиотеки. Имена некоторых типов (TKIND_ENUM, TKIND_MODULE и TKIND_COCLASS) используют общее пространство имен с переменными, функциями, константами и элементами перечислений.
Если для недвусмысленного указания элемента его имя требует квалификации, то, чтобы выполнить компоновку с данным элементом для каждого квалификатора, следует последовательно вызывать GetTypeComp. Это обеспечивает доступ компиляторов к членам модулей, перечислений и компонентных классов, несмотря на то, что при компоновке нельзя задавать квалифицированное имя.

Hosted by uCoz